﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.VisualStudio.SourceSafe.Interop;

namespace WebTest.VssTest
{
    public partial class VssTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            VSSDatabase vssDatabase = new VSSDatabase();
            vssDatabase.Open("\\\\192.168.0.239\\ucar$\\srcsafe.ini", "ccnet", "666666");
            VSSItem vssitem = vssDatabase.get_VSSItem("$/2SC/CommonLib", false);
            VSSItem vssitemVersion;
            string s = "c:/abc", local;
            foreach (VSSItem item in vssitem.get_Items(false))
            {
                //item.Type=0:项目文件夹  item.Type=1:项目文件
                vssitemVersion = item.get_Version(item.VersionNumber);
                local = s + "/" + vssitemVersion.Name;
                //vssitemVersion.Get(ref local, 0);
                //vssitemVersion.Checkout("test", vssitemVersion.LocalSpec,0);
                //vssitem.Add("c:\\abc\\", "", 0);//新增文件夹下的所有文件，如果VSS上已经存在某个文件则报错，但不存在的仍然会新增进去
                //vssitem.Add("c:\\abc\\test.txt", "", 0);//新增文件，如果VSS上存在则报错
                //vssitem.Checkout("", "c:\\abc\\", 0);//签出文件夹下所有文件，无法实现自动新增
                //vssitemVersion.Checkout("", vssitemVersion.LocalSpec, 0);//签出文件，不存在则报错
                //vssitem.Checkin("", "c:\\abc\\", 0);//签入文件夹下所有文件，无法实现自动新增
                //vssitem.Checkin("", "c:\\abc\\test.txt", 0);//签入文件，不存在则报错
            }
            VSSItem controlItem = vssitem.get_Child("test.txt", false);
            //vssitemVersion.IsCheckedOut=1:被别人签出   vssitemVersion.IsCheckedOut=2:被自己签出
            if (controlItem.IsCheckedOut == 1)
            {
                if (controlItem.VSSVersion.Username == "ccnet")
                {
                    controlItem.UndoCheckout("c:\\abc\\test.txt", 0);
                }
                else
                {
                    throw new Exception("程序集被签出，VSS签入失败！");
                }
            }
            controlItem.Checkin(string.Empty, "c:\\abc\\test.txt", 0);
            controlItem.Checkout(string.Empty, "c:\\abc\\test.txt", 0);

            System.Resources.ResourceReader aaa = new System.Resources.ResourceReader("Setting.resources");
            //Response.Write(CTask);
        }
    }
}
